<?php
if(!defined('IN_MIGSYS')) define('IN_MIGSYS', true);
if(!isset($migsys_root_path)) $migsys_root_path = './../';
require_once($migsys_root_path . 'common.php');
require_once($migsys_root_path . 'admin/register.php');
require_once($migsys_root_path . 'includes/validation.php');

// A página só deve ser acessa pelo administrador
if($user->userlevel != 2) {
	require_once($migsys_root_path . 'index.php'); 
	exit;
}

$site->add_page('caduser', 'admin/cad_user.html');

if(isset($_GET['action']) && $_GET['action'] == 'cadastrar') {
	$form_fields = array('tipousuario', 'nome', 'cpf', 'login', 'senha', 'email', 'logradouro', 'numero', 'cidade',
						 'cep', 'estado', 'bairro', 'telefone', 'celular');
    
	$notset_fields = notset_post_elems($form_fields);
	foreach ($notset_fields as $e) echo $e . ' - ';
	
	// Verificação do recebimento de todos os dados do formulário.
	if(count($notset_fields) == 0){
		// Verificação dos campos em branco.
		$campos_obrigatorios = $form_fields; //TODO: Colocar somente obrigatórios.
		$empty_fields = empty_post_elems($campos_obrigatorios);
		if(count($empty_fields) != 0){
			foreach ($empty_fields as $theempty) Info::queue_msg($C_INFOS['blank_field'], $theempty);
		}
		else {
			//TODO: Validar campos, tamanho, inválidos...
			//TODO: Validar se já existe 'nome', 'cpf' e 'login'.
			//TODO: Verificar senha, contrasenha...

            //Workaround
            $_POST['tipousuario']--;

			// Registra um usuário simples
			$userid = Register::register_user($_POST['login'], $_POST['nome'], $_POST['tipousuario'], $_POST['senha'],
											  $_POST['cpf'], $_POST['email']);
			
            // Registra um endereço na tabela Endereco
            Register::register_endereco($userid, $_POST['logradouro'], $_POST['numero'], $_POST['cidade'],
										$_POST['cep'], $_POST['estado'], $_POST['bairro']);

            // Registra um telefone na tabela Telefone
			Register::register_phone($userid, $_POST['telefone']);
			if(!empty($_POST['celular'])) Register::register_phone($userid, $_POST['celular']);
			
			
			// Faz a verificação de quais informações adicionais gravar no banco de dados.
			switch ($_POST['tipousuario']) {
				case 0:
					Register::register_discente($userid, $_POST['matricula'], $_POST['semestre']);
					break;
				case 1:
					Register::register_docente($userid, $_POST['matricula']);
					break;
			}
			
			Info::queue_msg($C_REGISTER_INFOS['register_success']);
            $_POST = array();
		}
	}
	else Info::queue_msg($C_INFOS['sending_form']);
}

// Necessário para carregar todo o layout do site
require_once($migsys_root_path . 'index.php');

?>